import { Body, Controller, Post } from '@nestjs/common';
import { AuthService } from './auth.service';
import { ApiTags } from '@nestjs/swagger';


@ApiTags('权限')
@Controller('auth')
export default class AuthController {
  constructor(
    private readonly authService: AuthService,
  ) {
  }

  /**
   * 根据用户名登录
   * @param payload
   */
  @Post('login_by_Name')
  async loginByName(@Body() payload: any): Promise<any> {
    console.log('######loginByName:', payload);
    const user = await this.authService.validateUserByName(payload);
    console.log('######user:', user);
    return await this.authService.createToken(user);
  }


  /**
   * 通过用户名和密码进行登录。
   * @param payload 包含用户名和密码的对象。
   * @returns 返回一个Promise，解析为认证token。
   */
  @Post('login_by_NameAndPassword')
  async loginByNameAndPassword(@Body() payload: any): Promise<any> {
    // 通过用户名和密码验证用户
    return await this.authService.validateUserByNameAndPassword(payload);
  }

}
